<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <input type="file">
  <img src="" alt="">
  <script>
    // 传统的实现上传图像预览, 选择图片后, 发送请求给服务器, 服务器将图片url地址返回给浏览器,浏览器再拿着url展示
    // 使用前端实现图片的本地预览, 实现的效果是选择完文件后, 图片立马展示
    // 1. URL.createObjectURL()               创建临时路径  生成地址页面关闭 对应的地址也随之失效
    // 2. fileReader 文件读取对象              生成base64格式的图片地址 永久有效  会将图片放大37%体积
    const ipt = document.querySelector('input')
    const img = document.querySelector('img')
    // 方式一:  URL.createObjectURL() 
    // ipt.addEventListener('change', (e)=>{
    //   const url =  URL.createObjectURL(e.target.files[0])
    //   console.log(url)
    //   img.src = url
    // })
      
    // 方式二: 文件读取对象fileReader  支持异步
    ipt.addEventListener('change', (e)=>{
      // 1. 创建文件读取对象
      const fd = new FileReader()
      // 2. 使用readAsDataURL读取文件
      fd.readAsDataURL(e.target.files[0])
      // 3. 在onload事件中拿到读取的结果 url地址
      fd.onload = () =>{
       console.log(fd.result) // 生成base64格式的图片地址 永久有效  会将图片放大37%体积
       img.src = fd.result
      }
    })
  </script>
</body>
</html>